// 导入守卫
import router from '@/router'
// 导入store 获取user模块的token
import store from '@/store'

// 设置一个白名单
const whitePage = ['/login', '/404']
// 前置守卫 ———— 所有的路由跳转都经过
router.beforeEach(async(to, from, next) => {
  /*
    1.判断是否有token
        有token 进入首页

        没有token
            1.判断是否进入login 或者404
            2.不是打回登录页
    */
  if (store.state.user.token) {
    // 有token
    if (to.path.toLowerCase() === '/login') {
      // to.path 是大写 使用大写还可以回登录页 所以需要变成小写toLowerCase()
      next('/')
    } else {
      if (store.state.user.userInfo.userId) {
        next()
      } else {
        await store.dispatch('user/getUserInfo')
        next(to.fullPath)
      }
    }
  } else {
    // 无token
    // console.log(whitePage)
    if (whitePage.includes(to.path.toLowerCase())) {
      // 白名单里面是否包含这个字段
      next()
    } else {
      next('/login?redirect=' + to.fullPath)
    }
  }
})
// 后置守卫
router.afterEach(() => {})
